package ca.qc.bdeb.jeuxdesboites;

import javax.swing.JLabel;
import javax.swing.JPanel;

/**
 * Classe qui affiche le temps.
 *
 * @author Eric Wenaas <eric.wenaas@bdeb.qc.ca>
 * @version 0.3
 */
final class HorlogeGUI extends JPanel
{

    private JLabel etiquetteTemps;
    private static long MILLIS_DANS_HEURE = 1000 * 60 * 60;
    private static long MILLIS_DANS_MINUTE = 1000 * 60;
    private static long MILLIS_DANS_SECONDE = 1000;
    private static long MILLIS_DANS_DIXIEME = 100;

    HorlogeGUI()
    {
        initComponents();
    }

    private void initComponents()
    {
        initEtiquetteTemps();
    }

    private void initEtiquetteTemps()
    {
        etiquetteTemps = new JLabel();
        etiquetteTemps.setFont(GlobalesGUI.POLICE_HORLOGE);
        add(etiquetteTemps);
    }

    void afficherTempsRestant(long millis)
    {
        long temps = millis;
        long heures = temps / MILLIS_DANS_HEURE;
        temps = temps - heures * MILLIS_DANS_HEURE;
        long minutes = temps / MILLIS_DANS_MINUTE;
        temps = temps - minutes * MILLIS_DANS_MINUTE;
        long secondes = temps / MILLIS_DANS_SECONDE;
        StringBuilder constructeur = new StringBuilder();
        if (millis > MILLIS_DANS_MINUTE)
        {
            if (minutes < 10)
            {
                constructeur.append("0");
            }
            constructeur.append(minutes);
            constructeur.append(":");
            if (secondes < 10)
            {
                constructeur.append("0");
            }
            constructeur.append(secondes);
            etiquetteTemps.setText(constructeur.toString());
        }
        else
        {
            //constructeur = new StringBuilder();
            secondes = temps / MILLIS_DANS_SECONDE;
            temps = temps - secondes * MILLIS_DANS_SECONDE;
            long dixiemes = temps / MILLIS_DANS_DIXIEME;

            if (secondes < 10)
            {
                constructeur.append("0");
            }
            constructeur.append(secondes);
            constructeur.append(".");
            constructeur.append(dixiemes);
            etiquetteTemps.setText(constructeur.toString());
        }
    }
}
